A JPEG decoder is responsible for reading encoded data and converting the data into interleaved 8×8 macroblocks of the color components (i.e. luminance Y and chrominance Cr, Cb). More precisely, when an image to be displayed is decoded by the JPEG decoder, the JPEG decoder will first generate two macroblocks of luminance Y, then one macroblock of chrominance Cb and then one macroblock of chrominance Cr.
Unfortunately, these macroblocks cannot be used directly by the display functionality. Indeed, the display functionality is expecting a raster scan format, i.e. Y data for first pixel followed by Cr for adjacent pixel, and then Y of second pixel followed by Cb of first and second pixels (there is only one Cb and one Cr for two Y bytes). It is thus necessary to perform a raster scan conversion between the JPEG decoder and the display module.
The conventional approach for performing such a conversion is a fully software technique. More precisely, the JPEG decoded data are written directly into the memory. And, in a second step, the central processing unit will reorder these decoded images in a suitable image format for the display module. However, such an approach is time consuming and can generate real time issues for the central processing unit.